package com.itheima.book.dao;

import com.itheima.book.domain.Book;

public class BookDao implements BookBaseDao {
    Book[] b = new Book[5];
    //定义删除图书的方法(deleteByBookId)
    //2. 遍历数组获取每一个图书对象，判断当前图书对应的id是否与要删除的图书对象的id相同
    //3. 如果相同就将该索引处的元素定义为null
    public void deleteByBookId(String bookId) {

        int q =-1;
        for (int i = 0; i < b.length; i++) {
            Book we = b[i];
            if (we!=null) {
                if (we.getBookId().equals(bookId)) {
                    q=i;
                    break;
                }
            }
        }
        if(q!=-1) {
            b[q] = null;
        }
    }
    /*定义方法(addBook)将BookService传递过来图书信息存储到数组中
1. 获取数组元素为null的索引值
2. 将Book数据存储到该索引位置
3. 如果数组已经存满返回false
     */

    public boolean addBook(Book book){


        int a = -1;
        for(int i=0;i<b.length;i++){
            Book c = b[i];
            if (c == null) {
                a = i;
                break;
            }
        }
        if(a!=-1){
            b[a]=book;
            return true;
        }
        return false;
    }

    //1. 定义一个获取所有图书信息的方法
    public Book[] allBook(){
        return b;
    }
//1. 定义修改图书的方法(updateBookByBookId),接收BookController传递过来的图书数据
//2. 遍历books数组，获取每一个book数据，然后判断当前遍历的book对象的bookId是否和传递过
//来的bookId相同
//3. 如果相同，就将传递过来的book对象赋值给该索引处的元素
    public void  updateBookByBookId(Book book) {
        int q =-1;
        for (int i = 0; i < b.length; i++) {
            Book we = b[i];
            if (we!=null) {
                if (we.getBookId().equals(book.getBookId())) {
                    q=i;
                    break;
                }
            }
        }
        if(q!=-1) {
            b[q] = book;
        }
    }
}
